home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 1998 August / PC Plus SuperCD 50a Issue 142 (CD142a) (August 1998).iso / trial / demon / TURNPIKE.1 / CLASSES.ZIP / sun / AWT / WIN32 / MToolkit.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-04-14  |  6.7 KB  |  298 lines

  1. package sun.awt.win32;
  2.  
  3. import java.awt.Button;
  4. import java.awt.Canvas;
  5. import java.awt.Checkbox;
  6. import java.awt.CheckboxMenuItem;
  7. import java.awt.Choice;
  8. import java.awt.Dialog;
  9. import java.awt.Dimension;
  10. import java.awt.FileDialog;
  11. import java.awt.Font;
  12. import java.awt.FontMetrics;
  13. import java.awt.Frame;
  14. import java.awt.Image;
  15. import java.awt.Label;
  16. import java.awt.List;
  17. import java.awt.Menu;
  18. import java.awt.MenuBar;
  19. import java.awt.MenuItem;
  20. import java.awt.Panel;
  21. import java.awt.Scrollbar;
  22. import java.awt.TextArea;
  23. import java.awt.TextField;
  24. import java.awt.Toolkit;
  25. import java.awt.Window;
  26. import java.awt.image.ColorModel;
  27. import java.awt.image.ImageObserver;
  28. import java.awt.image.ImageProducer;
  29. import java.awt.peer.ButtonPeer;
  30. import java.awt.peer.CanvasPeer;
  31. import java.awt.peer.CheckboxMenuItemPeer;
  32. import java.awt.peer.CheckboxPeer;
  33. import java.awt.peer.ChoicePeer;
  34. import java.awt.peer.DialogPeer;
  35. import java.awt.peer.FileDialogPeer;
  36. import java.awt.peer.FramePeer;
  37. import java.awt.peer.LabelPeer;
  38. import java.awt.peer.ListPeer;
  39. import java.awt.peer.MenuBarPeer;
  40. import java.awt.peer.MenuItemPeer;
  41. import java.awt.peer.MenuPeer;
  42. import java.awt.peer.PanelPeer;
  43. import java.awt.peer.ScrollbarPeer;
  44. import java.awt.peer.TextAreaPeer;
  45. import java.awt.peer.TextFieldPeer;
  46. import java.awt.peer.WindowPeer;
  47. import java.net.URL;
  48. import java.util.Hashtable;
  49. import sun.awt.image.FileImageSource;
  50. import sun.awt.image.ImageRepresentation;
  51. import sun.awt.image.URLImageSource;
  52.  
  53. public class MToolkit extends Toolkit implements Runnable {
  54.    boolean serverThread = true;
  55.    static Hashtable imgHash = new Hashtable();
  56.    static ColorModel screenmodel;
  57.  
  58.    public MToolkit() {
  59.       System.loadLibrary("awt");
  60.    }
  61.  
  62.    public native void init(Thread var1);
  63.  
  64.    public void run() {
  65.       if (this.serverThread) {
  66.          try {
  67.             System.loadLibrary("awt");
  68.             this.init(Thread.currentThread());
  69.          } catch (Throwable var2) {
  70.             System.err.println("Exception received while initializing AWT toolkit, aborting.");
  71.             var2.printStackTrace();
  72.             System.exit(1);
  73.          }
  74.  
  75.          this.eventLoop();
  76.       } else {
  77.          this.callbackLoop();
  78.       }
  79.    }
  80.  
  81.    native void eventLoop();
  82.  
  83.    native void callbackLoop();
  84.  
  85.    public ButtonPeer createButton(Button var1) {
  86.       return new MButtonPeer(var1);
  87.    }
  88.  
  89.    public TextFieldPeer createTextField(TextField var1) {
  90.       return new MTextFieldPeer(var1);
  91.    }
  92.  
  93.    public LabelPeer createLabel(Label var1) {
  94.       return new MLabelPeer(var1);
  95.    }
  96.  
  97.    public ListPeer createList(List var1) {
  98.       return new MListPeer(var1);
  99.    }
  100.  
  101.    public CheckboxPeer createCheckbox(Checkbox var1) {
  102.       return new MCheckboxPeer(var1);
  103.    }
  104.  
  105.    public ScrollbarPeer createScrollbar(Scrollbar var1) {
  106.       return new MScrollbarPeer(var1);
  107.    }
  108.  
  109.    public TextAreaPeer createTextArea(TextArea var1) {
  110.       return new MTextAreaPeer(var1);
  111.    }
  112.  
  113.    public ChoicePeer createChoice(Choice var1) {
  114.       return new MChoicePeer(var1);
  115.    }
  116.  
  117.    public FramePeer createFrame(Frame var1) {
  118.       return new MFramePeer(var1);
  119.    }
  120.  
  121.    public CanvasPeer createCanvas(Canvas var1) {
  122.       return new MCanvasPeer(var1);
  123.    }
  124.  
  125.    public PanelPeer createPanel(Panel var1) {
  126.       return new MPanelPeer(var1);
  127.    }
  128.  
  129.    public WindowPeer createWindow(Window var1) {
  130.       return new MWindowPeer(var1);
  131.    }
  132.  
  133.    public DialogPeer createDialog(Dialog var1) {
  134.       return new MDialogPeer(var1);
  135.    }
  136.  
  137.    public FileDialogPeer createFileDialog(FileDialog var1) {
  138.       return new MFileDialogPeer(var1);
  139.    }
  140.  
  141.    public MenuBarPeer createMenuBar(MenuBar var1) {
  142.       return new MMenuBarPeer(var1);
  143.    }
  144.  
  145.    public MenuPeer createMenu(Menu var1) {
  146.       return new MMenuPeer(var1);
  147.    }
  148.  
  149.    public MenuItemPeer createMenuItem(MenuItem var1) {
  150.       return new MMenuItemPeer(var1);
  151.    }
  152.  
  153.    public CheckboxMenuItemPeer createCheckboxMenuItem(CheckboxMenuItem var1) {
  154.       return new MCheckboxMenuItemPeer(var1);
  155.    }
  156.  
  157.    static synchronized Image getImageFromHash(Toolkit var0, URL var1) {
  158.       SecurityManager var2 = System.getSecurityManager();
  159.       if (var2 != null) {
  160.          var2.checkConnect(var1.getHost(), var1.getPort());
  161.       }
  162.  
  163.       Image var3 = (Image)imgHash.get(var1);
  164.       if (var3 == null) {
  165.          try {
  166.             var3 = var0.createImage(new URLImageSource(var1));
  167.             imgHash.put(var1, var3);
  168.          } catch (Exception var4) {
  169.          }
  170.       }
  171.  
  172.       return var3;
  173.    }
  174.  
  175.    static synchronized Image getImageFromHash(Toolkit var0, String var1) {
  176.       SecurityManager var2 = System.getSecurityManager();
  177.       if (var2 != null) {
  178.          var2.checkRead(var1);
  179.       }
  180.  
  181.       Image var3 = (Image)imgHash.get(var1);
  182.       if (var3 == null) {
  183.          try {
  184.             var3 = var0.createImage(new FileImageSource(var1));
  185.             imgHash.put(var1, var3);
  186.          } catch (Exception var4) {
  187.          }
  188.       }
  189.  
  190.       return var3;
  191.    }
  192.  
  193.    public Image getImage(String var1) {
  194.       return getImageFromHash(this, (String)var1);
  195.    }
  196.  
  197.    public Image getImage(URL var1) {
  198.       return getImageFromHash(this, (URL)var1);
  199.    }
  200.  
  201.    static boolean prepareScrImage(Image var0, int var1, int var2, ImageObserver var3) {
  202.       if (var1 != 0 && var2 != 0) {
  203.          Win32Image var4 = (Win32Image)var0;
  204.          if (((sun.awt.image.Image)var4).hasError()) {
  205.             if (var3 != null) {
  206.                var3.imageUpdate(var0, 192, -1, -1, -1, -1);
  207.             }
  208.  
  209.             return false;
  210.          } else {
  211.             if (var1 < 0) {
  212.                var1 = -1;
  213.             }
  214.  
  215.             if (var2 < 0) {
  216.                var2 = -1;
  217.             }
  218.  
  219.             ImageRepresentation var5 = var4.getImageRep(var1, var2);
  220.             return var5.prepare(var3);
  221.          }
  222.       } else {
  223.          return true;
  224.       }
  225.    }
  226.  
  227.    static int checkScrImage(Image var0, int var1, int var2, ImageObserver var3) {
  228.       Win32Image var4 = (Win32Image)var0;
  229.       int var5;
  230.       if (var1 != 0 && var2 != 0) {
  231.          if (var1 < 0) {
  232.             var1 = -1;
  233.          }
  234.  
  235.          if (var2 < 0) {
  236.             var2 = -1;
  237.          }
  238.  
  239.          var5 = var4.getImageRep(var1, var2).check(var3);
  240.       } else {
  241.          var5 = 32;
  242.       }
  243.  
  244.       return ((sun.awt.image.Image)var4).check(var3) | var5;
  245.    }
  246.  
  247.    public int checkImage(Image var1, int var2, int var3, ImageObserver var4) {
  248.       return checkScrImage(var1, var2, var3, var4);
  249.    }
  250.  
  251.    public boolean prepareImage(Image var1, int var2, int var3, ImageObserver var4) {
  252.       return prepareScrImage(var1, var2, var3, var4);
  253.    }
  254.  
  255.    public Image createImage(ImageProducer var1) {
  256.       return new Win32Image(var1);
  257.    }
  258.  
  259.    static native ColorModel makeColorModel();
  260.  
  261.    static ColorModel getStaticColorModel() {
  262.       if (screenmodel == null) {
  263.          screenmodel = makeColorModel();
  264.       }
  265.  
  266.       return screenmodel;
  267.    }
  268.  
  269.    public ColorModel getColorModel() {
  270.       if (screenmodel == null) {
  271.          screenmodel = makeColorModel();
  272.       }
  273.  
  274.       return screenmodel;
  275.    }
  276.  
  277.    public Dimension getScreenSize() {
  278.       return new Dimension(this.getScreenWidth(), this.getScreenHeight());
  279.    }
  280.  
  281.    public native int getScreenResolution();
  282.  
  283.    native int getScreenWidth();
  284.  
  285.    native int getScreenHeight();
  286.  
  287.    public String[] getFontList() {
  288.       String[] var1 = new String[]{"Dialog", "Helvetica", "TimesRoman", "Courier", "DialogInput", "ZapfDingbats"};
  289.       return var1;
  290.    }
  291.  
  292.    public FontMetrics getFontMetrics(Font var1) {
  293.       return Win32FontMetrics.getFontMetrics(var1);
  294.    }
  295.  
  296.    public native void sync();
  297. }
  298.